草庐IT

python - 支持引号的XML转义字符串的静态python方法

全部标签

ruby-on-rails - Authlogic记录方法。这是做什么的

我遇到了Ryanbates在他的authlogicRailscast中使用的称为record的方法,但似乎无法理解它的作用。我已经阅读了文档,但我似乎无法理解该帮助器的用途。defcurrent_userreturn@current_userifdefined?(@current_user)current_user_session&¤t_user_session.recordend我想知道的是,这是否只是从数据库中获取记录,以及为什么它与从数据库中获取数据的标准方式不同。谢谢。 最佳答案 这个“记录”方法是UserSes

ruby - 检测方法未被覆盖

比如说,我有以下2个类:classAdefa_methodendendclassB是否可以从B类(的一个实例)中检测到a_method方法仅在父类(superclass)中定义,因此不会在B中被覆盖?更新:解决方案虽然我已将Chuck的回答标记为“已接受”,但后来PaoloPerrota让我意识到该解决方案显然可以更简单,并且它可能也适用于早期版本的Ruby。检测“a_method”是否在B中被覆盖:B.instance_methods(false).include?("a_method")对于类方法,我们同样使用singleton_methods:B.singleton_method

ruby-on-rails - Ruby - 转义括号

我这辈子都弄不明白,尽管它应该很简单。如何用"\("和替换字符串中所有出现的"("和")""\)"?似乎没有任何效果:"foo(bar)foo".gsub("(","\(")#=>"foo(bar)foo""foo(bar)foo".gsub("(","\\(")#=>"foo\\(bar)foo"有什么想法吗? 最佳答案 第二次尝试时您已经有了解决方案,您只是感到困惑,因为字符串在交互式解释器中以转义形式显示。但实际上只有一个反斜杠,没有两个。尝试使用puts打印它,您会发现实际上只有一个反斜杠:>"foo(bar)foo".gs

ruby - 如何编写插入 rspec 示例的方法?

在一堆rspecrails单元规范中,我做了类似的事情:describeFoodo[:bar,:baz].eachdo|a|it"shouldhavemany#{a}"doFoo.shouldhave_many(a)endendend为了更简洁的代码,我宁愿这样做:describeFoodospec_has_manyFoo,:bar,:bazend那么我该如何编写像spec_has_many()这样的辅助方法来像rspec的it()方法那样插入DSL代码呢?如果它是一个普通的实例方法,我会做类似的事情:defspec_has_many(model,*args)args.eachdo|a

ruby-on-rails - Ruby 的 range step 方法导致执行速度很慢?

我有这段代码:date_counter=Time.mktime(2011,01,01,00,00,00,"+05:00")@weeks=Array.new(date_counter..Time.now).step(1.week)do|week|logger.debug"WEEK:"+week.inspect@weeks从技术上讲,代码有效,输出:SatJan0100:00:00-05002011SatJan0800:00:00-05002011SatJan1500:00:00-05002011etc.但是执行时间完全是垃圾!每周计算大约需要四秒钟。我在这段代码中是否遗漏了一些奇怪的低效

ruby-on-rails - 你如何在 Rails 中每小时调用一个方法?

我正在使用Resque与Redis处理后台作业。我想每小时调用一次方法Resque.enqueue(MyModel)来执行后台任务。例如:假设我有一个拥有10,000名用户的网站。我只想每天调用此方法24次;不是10,000*24。示例方法如下:Resque.enqueue(MyModel)提前感谢您的帮助。我还应该提一下,我更喜欢坚持使用Resque,而不是转向DelayedJob。谢谢。 最佳答案 您应该为此类任务使用cron作业。我建议您使用Whenevergem。在这里查看railscast:http://railscast

ruby - class Class - 实例与类方法

它是如何工作的?运行以下代码时,"hifromclass"会打印两次。ruby内部发生了什么使它表现得像这样?我实际上不是在为类创建实例方法吗classClassdeffooputs"hifromclass"endendClass.foox=Class.newx.foo 最佳答案 我不知道你是否意识到这一点,但是当你执行classClass...end时,你并没有创建一个名为Class,您正在重新打开现有类Class。由于Class是所有类都是其实例的类,这意味着Class是其自身的实例。因此,您可以直接在Class上调用Class

ruby - 在控制台中向左移动一个字符

在控制台中,您可以像这样打印"\b"来删除光标左侧的字符(退格键)print"thelastcharisgoingtobeerased\b"#thelastcharisgoingtobeerased如何只向左移动一个位置而不是删除(向左箭头)? 最佳答案 这取决于终端类型和连接,但通常可以假定ANSI光标移动,因此光标向左是ESC+'['+'D':print"Thecursorshouldbebetweenthearrows:->参见http://ascii-table.com/ansi-escape-sequences.php获取

Ruby 字符串是否等于字符串数组中的一个字符串?

有没有一种简单的方法可以在查询中调用类似于数据库的东西?“mystring”是否存在于["string1","mystring","string2"]=>会返回true“mystring”是否存在于["string1","string2","string3"]=>会返回false 最佳答案 ["string1","mystring","string2"].include?"mystring"参见:Enumerable#include? 关于Ruby字符串是否等于字符串数组中的一个字符串?

ruby - 使用默认值将 Ruby 字符串转换为整数

是否有一个Ruby方法接受一个字符串和一个默认值,如果字符串表示整数则将其转换为整数,否则返回默认值?更新我认为以下答案更可取:classStringdeftry_to_i(default=nil)/^\d+$/===self?to_i:defaultendend以下是您应该避免异常的证据:>deftime;t=Time.now;yield;Time.now-tend>time{1000000.times{|i|('_'1.3491532>time{1000000.times{|i|Integer.new('_'27.190596426 最佳答案